package com.ruoyi.finance.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 付款单对象 finer_payment
 * 
 * @author lvql
 * @date 2024-11-08
 */
public class Payment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Integer id;

    /** 单据编号 */
    @Excel(name = "单据编号")
    private String code;


    /* 单据类型  11-付款 12-预付款*/
    private Integer codeType;
    /*单据类型名*/
    private String codeTypeName;
    /** 源单编号 */
    @Excel(name = "源单编号")
    private String sourceCode;

    /** 总金额 */
    @Excel(name = "总金额")
    private BigDecimal totalAmount;

    /** 已核销金额 */
    @Excel(name = "已核销金额")
    private BigDecimal verifiedAmount;

    /** 单据日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "单据日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date docTime;

    /** 单据阶段 */
    @Excel(name = "单据阶段")
    private Integer docStage;

    /** 制单人 */
    @Excel(name = "制单人")
    private Integer docMakeUserId;

    /** 供应商id */
    @Excel(name = "供应商id")
    private Integer supId;

    /** 业务员id */
    @Excel(name = "业务员id")
    private Integer businessUserId;

    /** 审批结果 */
    @Excel(name = "审批结果")
    private Integer approvalResult;

    /** 审批意见 */
    @Excel(name = "审批意见")
    private String approvalRemark;

    /** 审批人id */
    @Excel(name = "审批人id")
    private Integer approvalUserId;

    /** 是否生效 */
    @Excel(name = "是否生效")
    private Integer isEffect;

    /** 是否关闭 */
    @Excel(name = "是否关闭")
    private Integer isClose;

    /** 是否作废 */
    @Excel(name = "是否作废")
    private Integer isCancel;

    private String supName ;

    private String businessUserName;
    private String approvalUserName;
    private String docMakeUserName;

    private List<PaymentDetail> list;


    /*客户id*/
    private Integer cusId;
    /*客户名称*/
    private String cusName;

    public Integer getCusId() {
        return cusId;
    }

    public void setCusId(Integer cusId) {
        this.cusId = cusId;
    }

    public String getCusName() {
        return cusName;
    }

    public void setCusName(String cusName) {
        this.cusName = cusName;
    }

    public String getCodeTypeName() {
        return codeTypeName;
    }

    public void setCodeTypeName(String codeTypeName) {
        this.codeTypeName = codeTypeName;
    }

    public Integer getCodeType() {
        return codeType;
    }

    public void setCodeType(Integer codeType) {
        this.codeType = codeType;
    }

    public String getSupName() {
        return supName;
    }

    public void setSupName(String supName) {
        this.supName = supName;
    }

    public String getBusinessUserName() {
        return businessUserName;
    }

    public void setBusinessUserName(String businessUserName) {
        this.businessUserName = businessUserName;
    }

    public String getApprovalUserName() {
        return approvalUserName;
    }

    public void setApprovalUserName(String approvalUserName) {
        this.approvalUserName = approvalUserName;
    }

    public String getDocMakeUserName() {
        return docMakeUserName;
    }

    public void setDocMakeUserName(String docMakeUserName) {
        this.docMakeUserName = docMakeUserName;
    }

    public List<PaymentDetail> getList() {
        return list;
    }

    public void setList(List<PaymentDetail> list) {
        this.list = list;
    }

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }
    public void setCode(String code) 
    {
        this.code = code;
    }

    public String getCode() 
    {
        return code;
    }
    public void setSourceCode(String sourceCode) 
    {
        this.sourceCode = sourceCode;
    }

    public String getSourceCode() 
    {
        return sourceCode;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setVerifiedAmount(BigDecimal verifiedAmount) 
    {
        this.verifiedAmount = verifiedAmount;
    }

    public BigDecimal getVerifiedAmount() 
    {
        return verifiedAmount;
    }
    public void setDocTime(Date docTime) 
    {
        this.docTime = docTime;
    }

    public Date getDocTime() 
    {
        return docTime;
    }
    public void setDocStage(Integer docStage) 
    {
        this.docStage = docStage;
    }

    public Integer getDocStage() 
    {
        return docStage;
    }
    public void setDocMakeUserId(Integer docMakeUserId) 
    {
        this.docMakeUserId = docMakeUserId;
    }

    public Integer getDocMakeUserId() 
    {
        return docMakeUserId;
    }
    public void setSupId(Integer supId) 
    {
        this.supId = supId;
    }

    public Integer getSupId() 
    {
        return supId;
    }
    public void setBusinessUserId(Integer businessUserId) 
    {
        this.businessUserId = businessUserId;
    }

    public Integer getBusinessUserId() 
    {
        return businessUserId;
    }
    public void setApprovalResult(Integer approvalResult) 
    {
        this.approvalResult = approvalResult;
    }

    public Integer getApprovalResult() 
    {
        return approvalResult;
    }
    public void setApprovalRemark(String approvalRemark) 
    {
        this.approvalRemark = approvalRemark;
    }

    public String getApprovalRemark() 
    {
        return approvalRemark;
    }
    public void setApprovalUserId(Integer approvalUserId) 
    {
        this.approvalUserId = approvalUserId;
    }

    public Integer getApprovalUserId() 
    {
        return approvalUserId;
    }
    public void setIsEffect(Integer isEffect) 
    {
        this.isEffect = isEffect;
    }

    public Integer getIsEffect() 
    {
        return isEffect;
    }
    public void setIsClose(Integer isClose) 
    {
        this.isClose = isClose;
    }

    public Integer getIsClose() 
    {
        return isClose;
    }
    public void setIsCancel(Integer isCancel) 
    {
        this.isCancel = isCancel;
    }

    public Integer getIsCancel() 
    {
        return isCancel;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("code", getCode())
            .append("sourceCode", getSourceCode())
            .append("totalAmount", getTotalAmount())
            .append("verifiedAmount", getVerifiedAmount())
            .append("docTime", getDocTime())
            .append("docStage", getDocStage())
            .append("docMakeUserId", getDocMakeUserId())
            .append("supId", getSupId())
            .append("businessUserId", getBusinessUserId())
            .append("approvalResult", getApprovalResult())
            .append("approvalRemark", getApprovalRemark())
            .append("approvalUserId", getApprovalUserId())
            .append("isEffect", getIsEffect())
            .append("isClose", getIsClose())
            .append("isCancel", getIsCancel())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
